
''' 
pywin32官方文档：https://mhammond.github.io/pywin32/

2025-1-8 20：50 成功获取到鼠标位置。并测试了非阻塞模式的鼠标监听
2025-1-8 21：21 成功获取到散兵坑窗口位置与大小
我发现窗口存在缩放问题，这应该会逼迫我除了计算偏移量外，还需要计算缩放。才能正确地映射鼠标

'''
import win32gui


def get_window_pos_size(hwnd):
    window_rect = win32gui.GetWindowRect(hwnd)

    x = window_rect[0]
    y = window_rect[1]
    width = window_rect[2] - x
    height = window_rect[3] - y

    return x, y, width, height



def get_foxhole_window_hwnd() :
    resultHwnd = None
    # # 定义回调函数，用于处理每个窗口句柄
    def enum_windows_callback(hwnd, lParam):
        nonlocal resultHwnd # 声明foxholeHwnd为非局部变量
        # 通过win32gui.GetWindowText获取窗口标题，判断是否为散兵坑窗口
        if 'War' in win32gui.GetWindowText(hwnd):
            # 找到窗口则赋值给返回值
            resultHwnd = hwnd
        return True
    win32gui.EnumWindows(enum_windows_callback, None)
    return resultHwnd

foxholeHwnd = get_foxhole_window_hwnd()

print(f"Foxhole Window Handle: {foxholeHwnd}")
print(f"Foxhole Window title: {win32gui.GetWindowText(foxholeHwnd)}")

x, y, width, height = get_window_pos_size(foxholeHwnd)
print("散兵坑窗口位置：({}, {})".format(x, y))
print("散兵坑窗口大小：{}x{}".format(width, height))